Stream distribution system and failure detection method

ABSTRACT

Provided are a stream distribution system and a failure detection method capable of easily identifying the cause of quality loss in stream distribution. This stream distribution system includes a first server for communicating with a client terminal via a router and sending stream data, and a second server configured as a redundant server of the first server and connected to the first server. The first server has a communication status notification unit for sending a connection management table concerning the communication with the client terminal to the second server. The second server has a packet recording unit for acquiring a mirror packet, which is a copy of a packet sent to the first server, from the router, and a network failure monitoring unit for detecting a failure in a network between the first server and the client terminal based on the connection management table and a packet buffer.

CROSS-REFERENCES

This application relates to and claims priority from Japanese PatentApplication No. 2008-115001, filed on Apr. 25, 2008, the entiredisclosure of which is incorporated herein by reference.

BACKGROUND

The present invention relates to a stream distribution system and afailure detection method capable of detecting a failure in streamdistribution.

Conventionally, as a method of analyzing a failure in a network, amethod has been proposed for monitoring a network path failure from aclient terminal by way of polling, and thereby determining where afailure has occurred in the network path (for instance, refer toJapanese Patent Laid-Open Publication No. 2002-152203).

SUMMARY

Nevertheless, although this conventional method can be used in caseswhere the client terminal, server and network path are fixed, it cannotbe used in cases when there is an unspecified number of client terminalssuch as in stream distribution. In addition, if the network path iscomplicated, polling will increase the traffic, and it will becomedifficult to balance the monitoring frequency and the increased trafficfor monitoring.

Meanwhile, the further increase of Internet stream distribution servicesis anticipated, and the distribution band expansion of streamdistribution servers and its utilization in a wide-area network areexpected. At the same time, reduction of the server installation area,reduction of power consumption and improvement in the processingperformance of individual servers are demanded.

With stream distribution where a stream distribution server sends streamdata via a complex network, since a single distribution band handleslarge stream data, if a failure occurs in that network, a sophisticatedfailure analyzer is required to perform failure analysis. Moreover,since a failure analyzer needs to understand the complex behavior of thestream distribution just to check the occurrence of a failure, it isextremely difficult to analyze a network failure in stream distribution.

In addition, since stream distribution needs to guarantee thedistribution band, if there is quality loss in stream distributioncaused by the distribution band falling below the required band or otherreasons, it is necessary to detect such quality loss and analyze thecause thereof. Nevertheless, as the cause of quality loss in streamdistribution, in addition to a failure occurring in the network,numerous causes such as a failure in the stream distribution server or afailure in the client terminal could be considered, and it is difficultto identify the cause of quality loss.

The present invention was made in view of the foregoing problems. Thus,an object of this invention is to provide a stream distribution systemand a failure detection method capable of easily identifying the causeof quality loss in stream distribution.

In order to achieve the foregoing object, the present invention providesa stream distribution system comprising a first stream distributionserver for communicating with a client terminal via a network apparatusand sending stream data, and a second stream distribution serverconfigured as a redundant server of the first stream distribution serverand connected to the first stream distribution server. The first streamdistribution server includes a send unit configured to sendcommunication information concerning the communication with the clientterminal to the second stream distribution server. The second streamdistribution server includes an acquisition unit configured to acquiremirror data, which is a copy of data sent to the first streamdistribution server, from the network apparatus, and a network failuredetection unit configured to detect a failure in a network between thefirst stream distribution server and the client terminal based on thecommunication information and the mirror data.

In order to achieve the foregoing object, the present inventionadditionally provides a failure detection method for use in a systemincluding a first stream distribution server for communicating with aclient terminal via a network apparatus and sending stream data, and asecond stream distribution server configured as a redundant server ofthe first stream distribution server and connected to the first streamdistribution server. This failure detection method includes a send stepof the first stream distribution server sending communicationinformation concerning the communication with the client terminal to thesecond stream distribution server, an acquisition step of the secondstream distribution server acquiring mirror data, which is a copy ofdata sent to the first stream distribution server, from the networkapparatus, and a network failure detection step of the second streamdistribution server detecting a failure in a network between the firststream distribution server and the client terminal based on thecommunication information and the mirror data.

According to the present invention, a failure in a network between thefirst stream distribution server and the client terminal is detectedbased on communication information concerning the communication betweenthe first stream distribution server and the client terminal, and mirrordata as a copy of data sent to the first stream distribution server.Thereby, the second stream distribution server is able to detect qualityloss caused by a network failure based on the communication informationand mirror data, and differentiate a network failure from otherfailures.

According to the present invention, the second stream distributionserver is able to detect quality loss caused by a network failure basedon the communication information and mirror data, and differentiate anetwork failure from other failures. Thereby, it is possible to narrowthe scope of cause of quality loss, and the cause of quality loss instream distribution can be easily identified. Moreover, since the secondstream distribution server having the same level of performance as thefirst stream distribution server detects the network failure, a networkfailure can be analyzed without requiring a sophisticated failureanalyzer as with the conventional art.

DESCRIPTION OF DRAWINGS

FIG. 1 is schematic configuration diagram explaining the overallconfiguration of a stream distribution system;

FIG. 2 is a schematic configuration diagram explaining the physicalconfiguration of a server shown in FIG. 1;

FIG. 3 is a configuration diagram explaining a connection managementtable shown in FIG. 1;

FIG. 4 is a configuration diagram explaining a connection analysis tableshown in FIG. 1;

FIG. 5 is a configuration diagram explaining a packet buffer shown inFIG. 1;

FIG. 6 is a flowchart explaining the operation of a failure monitoringunit shown in FIG. 1;

FIG. 7 is a flowchart explaining the operation pertaining to failuredetection in the server; and

FIG. 8 is a flowchart explaining the operation of a network failuremonitoring unit shown in FIG. 1.

DETAILED DESCRIPTION

An embodiment of the present invention is now explained in detail withreference to the attached drawings.

The configuration of a stream distribution system is foremost explainedwith reference to FIG. 1 through FIG. 5. FIG. 1 is a schematicconfiguration diagram explaining the overall configuration of the streamdistribution system.

A stream distribution server 9 is configured from a stream distributionserver (hereinafter simply referred to as a “server”) 1 a, a server 1 b,and an external storage apparatus 3. The server 1 a and the server 1 brespectively communicate with a client terminal 4 connected via a router2 and a network 5, and send stream data of the stream designated by theclient terminal 4.

The client terminal 4 is a terminal for receiving stream data sent bythe server 1 a or the server 1 b, and providing a stream-viewing serviceto a user of the client terminal 4. The client terminal 4 includes astream playback unit 34 for sending a stream distribution request to theserver 1 a or the server 1 b via the network 5, receiving stream datafrom the server 1 a or the server 1 b, and playing and providing thestream to the user of the client terminal 4. The client terminal 4 alsoincludes an input device (not shown) for receiving operations from theuser and a device (not shown) for displaying video. Although only oneclient terminal 4 is shown in FIG. 1, the configuration is not limitedthereto, and there may be a plurality of client terminals.

Before sending the stream distribution request, the client terminal 4acquires a list of streams distributable by the server 1 a and theserver 1 b, and the address on the network 5 (for instance the IPaddress) of the server 1 a and the server 2 a to distribute the streamfrom a Web server (not shown) or the like. The client terminal 4 alsoprefetches a given period of time worth of stream data in advance duringthe reception of the stream data. If a reception failure occurs duringthe reception of stream data from the server 1 a, and it is not possibleto receive subsequent stream data from the server 1 a within the givenperiod of time that stream data was prefetched, the client terminal 4sends a stream distribution request for the subsequent stream data tothe server 1 b based on the acquired address of the server 1 b.

The network 5 is configured from a WAN (Wide Area Network) or theInternet.

The router 2 comprises a network port 34 a and a network port 34 b forconnecting to other network devices such as the server 1 a and theserver 1 b. The router 2 also includes a mirroring unit 32 for copying apacket to be sent to a network port and sending the copied mirror packetto other network ports, and a configuration change acceptance unit 33for accepting an external configuration change and changing theoperational configuration of the router 2.

In this embodiment, the router 2 is configured such that the networkport 34 a and the server 1 a are connected with a network cable 6 a, andthe network port 34 b and the server 1 b are connected with a networkcable 6 b. The service provider providing the stream distributionservice owns and managed the router connected to the network 5, and theserver 1 a and the server 1 b connected to the router 2.

An interface cable 7 for acquiring information concerning the mutualoperational status is provided between the server 1 a and the server 1b. The server 1 a and the server 1 b share the external storageapparatus 3 storing stream data of the stream to be distributed, and areconnected to the external storage apparatus 3 with an interface cable 8a and an interface cable 8 b. The interface cable 8 a and the interfacecable 8 b are preferably configured from a fibre channel cable or thelike.

The external storage apparatus 3 is configured from a stream disk 30 asa disk storing stream data of the stream to be distributed by the server1 a and the server 1 b, and a packet disk 31 as a disk storing a mirrorpacket as a copy of a packet acquired with a packet recording unit 18described later and sent from the router 2 to the server 1 a.

FIG. 2 is a schematic configuration diagram explaining the physicalconfiguration of the servers shown in FIG. 1. The server 1 a and theserver 1 b respectively include a processor 100, a primary storageapparatus 101, an internal interface 105, a communication circuitinterface 106, an external storage apparatus interface 107, and an I/Odevice 108. The primary storage apparatus 101 is configured from a RAM(Random Access Memory) or the like, and comprises a program memory 102and a data memory 103 as the storage means to be used upon performingarithmetic processing. Arithmetic processing is realized by theprocessor 100 configured from a CPU (Central Processing Unit) executinga program in the program memory 102. The I/O device 108 is, forinstance, a keyboard, a mouse and a display.

The server 1 a and the server 1 b are adopting the active/standbyconfiguration. In other words, the server 1 a and the server 1 b are inthe operating mode status of either active or standby. The server in theactive operating mode provides the stream distribution service, and theserver in the standby operating mode monitors the occurrence of afailure in the server in the active operating mode and, if a failureoccurs in the server in the active operating mode, continues the streamdistribution service by changing its operating mode from standby toactive. In the ensuing explanation, unless it is otherwise specifiedherein, let it be assumed that the server 1 a is in the active operatingmode and the server 1 b is in the standby operating mode.

As shown in FIG. 1, the server 1 a includes a stream distribution unit10, a connection management table 11, and a communication statusnotification unit 14 that operate in a server in the active operatingmode. The server 1 b includes a failure monitoring unit 15, a networkfailure monitoring unit 17, a packet recording unit 18, and a connectionanalysis table 19, and a packet buffer 20 that operate in a server inthe standby operating mode. Incidentally, although FIG. 1 illustratescomponents in the server 1 a that operate in a server in the activeoperating mode and components in the server 1 b that operate in a serverin the standby operating mode, respectively, since active/standby mustbe switched if a failure occurs in the server, in a practical sense, theserver 1 a and the server 1 b include components that operate in both aserver in the active operating mode and a server in the standbyoperating mode.

The stream distribution unit 10 is used for distributing stream data tothe client terminal 4 via the network 5. The stream distribution unit 10acquires stream data from the external storage apparatus 3 according tothe stream distribution request from the client terminal 4, and sendsthe acquired stream data to the client terminal 4 while protecting thetransmission band required for playing the stream without interruption.

The connection management table 11 is a table for managing thecommunication information concerning the communication with the clientterminal 4 for each connection with the client terminal 4.

FIG. 3 is a configuration diagram explaining the connection managementtable shown in FIG. 1. The connection management table 11 is a table tobe recorded or updated by the stream distribution unit 10. Theconnection management table 11 is configured from a distributioninformation column 201, a required band column 202, a client terminalidentifying information column 203, a received packet column 204, and acommunication status column 205.

The distribution information column 201 stores, for example, informationsuch as the file name for identifying the stream data stored in thestream disk 30 to be distributed. The required band column 202 storesthe transmission band required for playing the stream in the clientterminal 4 without interruption. The client terminal identifyinginformation column 203 stores identifying information such as thenetwork address for identifying the client terminal 4 to which streamdata should be sent.

The received packet column 204 stores reception information showing thereception status of packets sent to the server 1 a; for instance, thenumber of packets that the server 1 a received from the client terminal4, the time that the last packet was received by the server 1 a, andpacket information showing the content of the received packet. Thepacket information to be stored in the received packet column 204 is notlimited to the last received packet, and may be a part of the packetsreceived by the server 1 a; for instance, a plurality of receivedpackets within the scope of the storable data amount.

The communication status column 205 stores communication statusinformation showing the communication status with the client terminal 4;for example, the window size of TCP (Transmission Control Protocol)showing the data size that can be received by the client terminal 4, themaximum delay time in the case of measuring a plurality of delay timeswithin a given period of time among the delay times up to the receptionof an ACK (ACKnowledgement) signal showing that the client terminal 4received the stream data after the server 1 a sent such stream data, thecommunication band used in the most recent communication, and the numberof times that the packets were resent.

The stream distribution unit 10 adds a row upon establishing aconnection with the client terminal 4, and stores and recordsinformation in the distribution information column 201, the requiredband column 202 and the client terminal identifying information column203. During stream distribution, the contents of the received packetcolumn 204 and the communication status column 205 are updated at fixedintervals and, upon normally ending the communication with the clientterminal 4 such as by receiving a stream distribution stop request fromthe client terminal 4, the communication status column 205 is updated to“Normal End.”

The communication status notification unit 14 is used for notifying thecommunication status of the stream that is being distributed to theclient terminal 4 to the server 1 b in the standby operating mode.Specifically, the communication status notification unit 14 sends theconnection management table 11 to the server 1 b at given intervals. Thecycle (interval) that the communication status notification unit 14sends the connection management table 11 to the server 1 b is preferablythe same or roughly the same as the cycle (interval) that the streamdistribution unit 10 updates the contents of the received packet column204 and the communication status column 205.

The failure monitoring unit 15 is used for monitoring the occurrence ofa failure in the server 1 a. If the failure monitoring unit 15 detects afailure, it changes the operating mode of the server 1 a from active tostandby, and changes the operating mode of the server 1 b from standbyto active. As a method of changing the operating mode, for instance, anactive flag is stored in the program memory 102 or the data memory 103,and the active flag is set to “1” when changing the operating mode toactive and set to “0” when changing the operating mode to standby.

The network failure monitoring unit 17 is booted with the failuremonitoring unit 15, and is used for monitoring the occurrence of anetwork-like failure in the network 5; that is, the occurrence of anetwork failure including a failure in the client terminal 4. If thenetwork failure monitoring unit 17 detects a network failure, itperforms failure analysis of the detected network failure.

The packet recording unit 18 is booted with the failure monitoring unit15 or the network failure monitoring unit 17, and is used for acquiringa mirror packet, which is a copy of the packet sent from the clientterminal 4 to the server 1 a, from the router 2, and recording theacquired mirror packet. The packet recording unit 18 classifies themirror packets acquired from the router 2 per connection by identifyingthe client terminal 4 as the source, and records or updates such mirrorpackets in the connection analysis table 19 described later. The packetrecording unit 18 additionally buffers the mirror packets acquired fromthe router 2 to the packet buffer 20 described later provided in theprimary storage apparatus 101, and records such mirror packets in thepacket disk 31 of the external storage apparatus 3 at the timingdescribed later. The amount of data to be buffered is set as the dataamount that is just enough for the failure analysis of the networkfailure described later to be performed by the network failuremonitoring unit 17, and any mirror packet exceeding such data amount isdeleted from the packet recording unit 18. Incidentally, the amount ofdata to be buffered is preferably the data amount that is just enoughfor the failure analysis of the network failure, and greater than thedata amount of the mirror packets received during the timeout time forthe client terminal 4 to detect a network failure.

FIG. 4 is a configuration diagram explaining the connection analysistable shown in FIG. 1. The connection analysis table 19 is a tablerecording the result of the packet recording unit 18 receiving andanalyzing the mirror packets copied with the router 2 and sent to theserver 1 b. The connection analysis table 19 is updated by the packetrecording unit 18 upon updating the contents of the mirror packet thatwas buffered to the packet buffer 20 described later.

The connection analysis table 19 is configured from a client terminalidentifying information column 211, and a buffering packet informationcolumn 212. The client terminal identifying information column 211stores, as with the client terminal identifying information column 203of the connection management table 11, identifying information foridentifying the client terminal 4. The buffering packet informationcolumn 212 stores the number of received packets for managing whatnumber the oldest mirror packet buffered to the primary storageapparatus 101 was received from the start of communication with theclient terminal 4.

FIG. 5 is a configuration diagram explaining the packet buffer shown inFIG. 1. The packet buffer 20 is configured from a reception time column221, a client terminal identifying information column 222, a receivedpacket number column 223, and a packet data column 224. The receptiontime column 221 stores the time that the mirror packet was received bythe server 1 b. The client terminal identifying information column 222stores information of the source in the mirror packet. The receivedpacket number column 223 stores the serial number of the mirror packetfor each source stored in the client terminal identifying informationcolumn 222. The packet data column 224 stores the contents of the mirrorpacket received by the server 1 b.

The operation of the stream distribution system is now explained withreference to FIG. 6 through FIG. 8.

FIG. 6 is a flowchart explaining the operation of the failure monitoringunit shown in FIG. 1. The failure monitoring unit 15 determines whetherthe operating mode of the server 1 b is standby based on the active flagdescribed above (S301), continues the failure monitoring and proceeds toS302 if the operating mode is standby and, if the operating mode is notstandby, repeats S301 until the operating mode becomes standby.

Subsequently, the failure monitoring unit 15 boots the packet recordingunit 18, and the packet recording unit 18 sends a configuration changerequest to the router 2, and configures the router 2 so that the router2 copies the packet to be sent to the server 1 a and sends it to theserver 1 b (S304). Incidentally, if the router 2 has already beenconfigured such as when executing S304 once again after the processingof S303 described later, the failure monitoring unit 15 skips S304.

Subsequently, the failure monitoring unit 15 determines whether afailure has occurred in the other server; namely, the server 1 a (S302).As a method of determining whether a failure has occurred in the server,for instance, the following processing is executed.

FIG. 7 is a flowchart explaining the operation for detecting a failurein the server. Foremost, the failure monitoring unit 15 determineswhether a failure has occurred in the software of the server 1 a, suchas the software not operating normally, based on whether there is areply upon communicating with the software of the server 1 a in givenintervals (S321). If there is no failure in the software of the server 1a, the failure monitoring unit 15 connects the server 1 a and theinternal interface of the server 1 b, and determines whether a failurehas occurred in the CPU by monitoring the CPU's self-check result in theserver 1 a from the server 1 b via the internal interface (S322). Ifthere is no failure in the CPU of the server 1 a, the failure monitoringunit 15 determines whether a failure has occurred in the power source,such as the power source of the server 1 a not being a normal voltage,from the server 1 b via the internal interface (S323). If there is nofailure in the power source of the server 1 a, the failure monitoringunit 15 makes an inquiry to the software of the server 1 a to determinewhether a failure has occurred in the internal network of the streamdistribution system 9; for instance, whether a disconnection hasoccurred in the network cable 6 b (S324). If there is no failure in theinternal network, the failure monitoring unit 15 makes an inquiry to thesoftware of the server 1 a to determine whether a failure has occurredin the cooling system, such as the decrease in the rotating speed of thecooling fan (S325). If at least one failure has occurred at S321 toS325, the failure monitoring unit 15 detects the occurrence of a failurein the server 1 a and ends this processing. If no failure has occurredat S321 to S325, the failure monitoring unit 15 does not detect theoccurrence of a failure in the server 1 a, and ends this processing onthe assumption that the server 1 a is normal.

If a failure has occurred in the server 1 a as a result of thedetermination at S302, the failure monitoring unit 15 sends aconfiguration change request to the router 2 so that the server 1 b cancommunicate with the client terminal 4, returns the configuration of therouter 2 changed at S304 to the original configuration, and stops thepacket recording unit 18 (S305). After stopping the packet recordingunit 18, the failure monitoring unit 15 performs the so-called failoverprocessing of changing the operating mode of the server 1 a from activeto standby, and changing the operating mode of the server 1 b fromstandby to active (S306), and then ends and stops the processing ofmonitoring the occurrence of a failure. Thereby, the failure monitoringunit 15 of the server 1 a is booted to monitor the occurrence of afailure in the server 1 b in the active operating mode.

If it is possible to simultaneously send the mirror packet copied by therouter 2 and send the stream data such as when there are a plurality ofnetwork cables 6 a and network cables 6 b connecting the router 2 withthe server 1 a and the server 1 b, the failure monitoring unit 15 mayomit the configuration change of the router 2 at S304 and S305.

If a failure has not occurred in the server 1 a as a result of thedetermination at S302, the failure monitoring unit 15 boots the networkfailure monitoring unit 17, and the network failure monitoring unit 17monitors the occurrence of a network failure.

FIG. 8 is a flowchart explaining the operation of the network failuremonitoring unit shown in FIG. 1. Foremost, the network failuremonitoring unit 17 acquires communication information concerning thecommunication with the client terminal 4 from the server 1 a (S310).Specifically, the communication status notification unit 14 of theserver 1 a sends the contents of the connection management table 11, andthe network failure monitoring unit 17 of the server 1 b receives thecontents of the connection management table 11 sent from thecommunication status notification unit 14.

Subsequently, the network failure monitoring unit 17 executes thefollowing S311 to S314 to each row regarding the respective rows of theacquired connection management table 11.

Foremost, the network failure monitoring unit 17 determines whether thecommunication between the server 1 a and the client terminal 4 endednormally based on whether the communication status column 205 of theconnection management table 11 is “Normal End” (S311), proceeds to S315if the communication between the server 1 a and the-client terminal 4ended normally, and proceeds to S312 if the communication did not endnormally.

Subsequently, the network failure monitoring unit 17 determines whethereach of indexes of the communication status information showing thecommunication status of the server 1 a and the client terminal 4 storedin the communication status column 205 has reached a predeterminedthreshold value (S312). If an index showing the communication status ofthe network has reached a threshold value set for that index; forinstance, if the window size of TCP becomes 0 when TCP is being used asthe network protocol, if the difference between the time that the IP(Internet Protocol) packet of the server 1 a was sent and the arrivaltime of the ACK signal corresponding to that IP packet becomes onesecond or longer, if the communication band of the past 10 seconds fallsbelow the band of the required band column 202, if the number of resentpackets exceeds 1, and so on may be considered. Like this, since thechange in the communication status with the client terminal 4 isdetected based on the communication status column 205, it is possible todetect the quality loss caused by a change in the communication status.

As a result of the determination at S312, the network failure monitoringunit 17 proceeds to S316 if the threshold value set to the respectiveindexes of the communication status information is reached, and proceedsto S313 is such threshold value is not reached.

Subsequently, the network failure monitoring unit 17 boots the packetrecording unit 18, and the packet recording unit 18 searches for thecontents of the received packet column 204 in the packet buffer 20.Specifically, the packet recording unit 18 searches for a row in whichinformation of the client terminal identifying information column 203and information of the client terminal identifying information column222 coincide, and in which the number of received packets of thereceived packet column 204 and the serial number of the mirror packet ofthe received packet number column 223 coincide, from the packet buffer20. The packet recording unit 18 thereafter acquires the contents of themirror packet of the packet data column 224 in the searched row, anddetermines whether the acquired contents of the mirror packet of thepacket data column 224 differ from the packet information of thereceived packet column 204 (S313). Like this, since a change in thereception status of the packets sent to the server 1 a before aprescribed point in time is detected based on the number of receivedpackets of the received packet column 204 and the packet information, itis possible to detect the omission of reception (packet drop) of thepackets in the server 1 a before a prescribed point in time.

As a result of the determination at S313, the network failure monitoringunit 17 proceeds to S316 if the contents of the mirror packet of thepacket data column 224 in the searched line differ from the packetinformation stored in the received packet column 204, and proceeds toS314 when they coincide. Incidentally, the network failure monitoringunit 17 also proceeds to S314 if there is no row corresponding to thepacket buffer 20 as a result of searching the packet buffer 20.

Subsequently, the packet recording unit 18 searches for a row in whichinformation of the client terminal identifying information column 203and information of the client terminal identifying information column222 coincide, and the serial number of the mirror packet of the receivedpacket number column 223 is greater than the number of received packetsof the received packet column 204 from the packet buffer 20, anddetermines whether the difference in the time of the reception timecolumn 221 in the searched row and the reception time of the receivedpacket column 204 is greater than a given period of time (S314). Likethis, since a change in the reception status of the packets sent to theserver 1 a after a prescribed point in time is detected based on thenumber of received packets of the received packet column 204 and thepacket information, it is possible to detect the omission of reception(packet drop) of the packets in the server 1 a after a prescribed pointin time.

As a result of the determination at S314, the network failure monitoringunit 17 proceeds to S316 if the difference in the time of the receptiontime column 221 in the searched line and the reception time of thereceived packet column 204 is greater than a given period of time. Thegiven period of time is the standby time at S315 described later. Thenetwork failure monitoring unit 17 also proceeds to S316 if there is noline corresponding to the packet buffer 20 as a result of the searchingthe packet buffer 20.

After performing the foregoing S311 to S314 to each row of theconnection management table 11, the network failure monitoring unit 17stands by for a given period of time (S315). This given period of timeis preferably several seconds or so.

Here, if the determination at S312 is true (Yes), there is a possibilitythat some kind of failure occurred in the network 5 between the server 1a and the client terminal 4 or in the client terminal 4 itself, and theserver 1 a is free from any problems. Moreover, if the determination atS313 or S314 is true (Yes), there is a possibility that the server 1 acould not receive all the packets. Like this, since a failure isdetected in the network 5 between the server 1 a and the client terminal4 based on the connection management table 11 as communicationinformation concerning the communication between the server 1 a and theclient terminal 4, and the packet buffer 20 buffered with the mirrorpacket as a copy of the packet sent to the server 1 a, the server 1 b isable to detect quality loss caused by a network failure based on theconnection management table 11 and the packet buffer 20, anddifferentiate a network failure from other failures.

Subsequently, the packet recording unit 18 stores the mirror packetbuffered to the packet buffer 20 in the packet disk 31 (S316). It isthereby possible to record differentiating information of a networkfailure and other failures.

Subsequently, the network failure monitoring unit 17 uses the clientterminal identifying information column 211 of the connection analysistable 19 to perform failure analysis of the network 5 (S317). As amethod of performing failure analysis to the network 5, a failureanalysis method employing an ICMP (Internet Control Message Protocol)packet may be considered. This method sequentially increases the maximumhop count of the IP packet like 1, 2, 3, sends a plurality of ICMPpackets to the network address of the client terminal stored in theclient terminal identifying information column 211, and statisticallymeasures the reply count. It is thereby possible to know up to whatnumber hop destination router communication is possible, and acquire thepacket loss ratio for performing failure analysis of the network. Likethis, since a network failure is analyzed when such network failure isdetected and an ICMP packet or the like is sent to the network 5 uponanalyzing the network failure, it is possible to minimize the trafficincrease of the network 5 caused by the analysis of the network failure.

The network failure monitoring unit 17 proceeds to S315 after S317 and,after the lapse of a given period of time, the network failuremonitoring unit 17 ends the processing of monitoring the occurrence of anetwork failure, returns to the flowchart shown in FIG. 6, and thefailure monitoring unit 15 repeats S301 to S306 once again.

Like this, according to the present invention, since a failure isdetected in the network 5 between the server 1 a and the client terminal4 based on the connection management table 11 as communicationinformation concerning the communication between the server 1 a and theclient terminal 4, and the packet buffer 20 buffered with the mirrorpacket as a copy of the packet sent to the server 1 a, the server 1 b isable to detect quality loss caused by a network failure based on theconnection management table 11 and the packet buffer 20, anddifferentiate a network failure from other failures. Thereby, it ispossible to narrow the scope of cause of quality loss, and the cause ofquality loss in stream distribution can be easily identified. Moreover,since the server 1 b having the same level of performance as the server1 a detects the network failure, a network failure can be analyzedwithout requiring a sophisticated failure analyzer as with theconventional art.

Further, since the mirror packet is stored in the packet disk 31 upondetecting a network failure, it is possible to record differentiatinginformation of a network failure and other failures. Thus, it is nolonger necessary to capture and check vast amounts of packets with alarge distribution band or check the amount of packet capture byrestricting such amount for a given period of time or under givenconditions as with a conventional failure analyzer, and it is possibleto only store the packets that are required for the failure analysis.

In addition, when changing the operating mode of the server 1 b fromstandby to active and distributing stream data to the client terminal 4,the server 1 b stops the failure monitoring unit 15. Thus, by changingthe operating mode of the server 1 a from active to standby, the failuremonitoring unit 15 of the server 1 a is booted to monitor the occurrenceof a failure in the server 1 b in the active operating mode.

Moreover, since the connection management table 11 includes thecommunication status column 205 for storing communication statusinformation showing the communication status with the client terminal 4,it is possible to detect a change in the communication status with theclient terminal 4 based on the communication status column 205. It isthereby possible to detect the quality loss caused by a change in thecommunication status, and further differentiate a network failure fromother failures.

Further, since the connection management table 11 includes the receivedpacket column 204 storing reception information showing the receptionstatus of data sent to the server 1 a, it is possible to detect a changein the reception status of packets set to the server 1 a based on thereceived packet column 204, and further possible to detect the omissionof reception (packet drop) of packets in the server 1 a. It is therebypossible to differentiate a packet drop of packets from other failures.

In addition, since a network failure is analyzed when such networkfailure is detected and an ICMP packet or the like is sent to thenetwork 5 upon analyzing the network failure, it is possible to minimizethe traffic increase of the network 5 caused by the analysis of thenetwork failure.

Incidentally, the configuration and operation of the present inventionare not limited to the foregoing embodiment, and may be variouslymodified within a scope that does not deviate from the gist of thepresent invention.

1. A stream distribution system, comprising: a first stream distributionserver for communicating with a client terminal via a network apparatusand sending stream data; and a second stream distribution serverconfigured as a redundant server of the first stream distribution serverand connected to the first stream distribution server; wherein the firststream distribution server includes: a send unit configured to sendcommunication information concerning the communication with the clientterminal to the second stream distribution server; and wherein thesecond stream distribution server includes: an acquisition unitconfigured to acquire mirror data, which is a copy of data sent to thefirst stream distribution server, from the network apparatus; and anetwork failure detection configured to detect a failure in a networkbetween the first stream distribution server and the client terminalbased on the communication information and the mirror data, wherein thesecond stream distribution server further includes an analysis unitconfigured to analyze a failure in the network when a failure isdetected in the network.
 2. The stream distribution system according toclaim 1, wherein the second stream distribution server further includesa storage unit configured to store the mirror data when a failure isdetected in the network.
 3. The stream distribution system according toclaim 1, wherein the second stream distribution server further includes:a server failure detection unit configured to detect a failure in thefirst stream distribution server; a stream distribution configured tosend the stream data to the client terminal when a failure is detectedin the first stream distribution server; and a stop unit configured tostop the server failure detection unit upon sending the stream data tothe client terminal.
 4. The stream distribution system according toclaim 1, wherein the communication information includes communicationstatus information showing the communication status with the clientterminal.
 5. The stream distribution system according to claim 1,wherein the communication information includes reception informationshowing the reception status of the data sent from the first streamdistribution server; and wherein the second stream distribution serverfurther includes a reception omission detection unit configured todetect the omission of reception of the data sent to the first streamdistribution server based on the communication information and themirror data.
 6. A failure detection method for use in a system includinga first stream distribution server for communicating with a clientterminal via a network apparatus and sending stream data, and a secondstream distribution server configured as a redundant server of the firststream distribution server and connected to the first streamdistribution server, comprising: a send step of the first streamdistribution server sending communication information concerning thecommunication with the client terminal to the second stream distributionserver; an acquisition step of the second stream distribution serveracquiring mirror data, which is a copy of data sent to the first streamdistribution server, from the network apparatus; and a network failuredetection step of the second stream distribution server detecting afailure in a network between the first stream distribution server andthe client terminal based on the communication information and themirror data, wherein the network failure detection step further includesan analytical step of the second stream distribution server analyzing afailure in the network when a failure is detected in the network.
 7. Thefailure detection method according to claim 6, wherein the networkfailure detection step further includes a storage step of the secondstream distribution server storing the mirror data when a failure isdetected in the network.
 8. The failure detection method according toclaim 6, wherein the acquisition step further includes: a server failuredetection step of the second stream distribution server detecting afailure in the first stream distribution server; a stream distributionstep of the second stream distribution server sending the stream data tothe client terminal when a failure is detected in the first streamdistribution server; and a stop step of the second stream distributionserver stopping the server failure detection unit upon sending thestream data to the client terminal.
 9. The failure detection methodaccording to claim 6, wherein the communication information includescommunication status information showing the communication status withthe client terminal.
 10. The failure detection method according to claim6, wherein the communication information includes reception informationshowing the reception status of the data sent from the first streamdistribution server; and wherein the network failure detection stepfurther includes a reception omission detection of the second streamdistribution server detecting the omission of reception of the data sentto the first stream distribution server based on the communicationinformation and the mirror data.